
<?xml version=”1.0″ encoding=”UTF-8″?>
<xsl:stylesheet version="1.0"
	xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
	xmlns:jabber="jabber:x:data">

	<xsl:template match="node()|@*">
		<xsl:apply-templates/>
	</xsl:template>

	<xsl:template match="/">
		<xsl:element name="form">
			<xsl:apply-templates />
		</xsl:element>
	</xsl:template>

	<xsl:template match="//*[@type='hidden']">
		<xsl:element name="input">
			<xsl:call-template name="name"/>
			<xsl:attribute name="type">hidden</xsl:attribute>
			<xsl:attribute name="value">
				<xsl:value-of select="."/>
			</xsl:attribute>
		</xsl:element>
	</xsl:template>	

	<xsl:template match="//*[@type='fixed']">
		<xsl:element name="h3">
			<xsl:value-of select="."/>
		</xsl:element>
	</xsl:template>	

	<xsl:template name="label">
		<xsl:element name="label">
			<xsl:attribute name="for">
				<xsl:value-of select="@var"/>
			</xsl:attribute>
			<xsl:value-of select="@label"/>
		</xsl:element>
	</xsl:template>

	<xsl:template name="name">
			<xsl:attribute name="name">
				<xsl:value-of select="@var"/>
			</xsl:attribute>
	</xsl:template>

	<xsl:template match="//*[@type='text-single']">
		<xsl:call-template name="label"/>
		<xsl:element name="input">
			<xsl:call-template name="name"/>
			<xsl:attribute name="type">text</xsl:attribute>
		</xsl:element>
	</xsl:template>	

	<xsl:template match="//*[@type='text-multi']">
		<xsl:call-template name="label"/>
		<xsl:element name="input">
			<xsl:call-template name="name"/>
		</xsl:element>
	</xsl:template>	


	<xsl:template match="//*[@type='boolean']">
		<xsl:call-template name="label"/>
		<xsl:element name="input">
			<xsl:call-template name="name"/>
			<xsl:attribute name="type">checkbox</xsl:attribute>
		</xsl:element>
	</xsl:template>	

	<xsl:template match="//*[@type='text-private']">
		<xsl:call-template name="label"/>
		<xsl:element name="input">
			<xsl:call-template name="name"/>
			<xsl:attribute name="type">password</xsl:attribute>
		</xsl:element>
	</xsl:template>	


	<xsl:template match="//*[starts-with(@type,'list')]">
		<xsl:call-template name="label"/>
		<xsl:element name="select">
			<xsl:for-each select="jabber:option">
				<xsl:element name="option">
					<xsl:value-of select="."/>
				</xsl:element>
			</xsl:for-each>
		</xsl:element>
	</xsl:template>	

</xsl:stylesheet>
